﻿Imports EntitiesLayer
Public Class FrmRegistrarPagos

    Dim precio As Integer
    Dim tipoPago As TiposPagos
    Dim idUsuario As Int16 = 1008
    Dim usuario As Usuario

    Private Sub FrmRegistrarPagos_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        CbxllenarCantmeses()
        CbxllenarFormapago()
        cargarInfoUsuario()

        If Screen.PrimaryScreen.WorkingArea.Height < 900 Then
            Me.AutoScroll = True
        End If
        DtpFechaFin.Enabled = False
    End Sub


    Private Sub cargarInfoUsuario()
        DtpFechaFin.Enabled = False
        Dim pagoUsuario As Pago = objGestor.UltimoPagoUsuario(usuario) 'este usuario se debe cambiar por el usuario seleccionado

        If IsNothing(pagoUsuario) Then
            lblNombre.Text = usuario.PrimerNombre + " " + usuario.PrimerApellido
            lblIdentificacion.Text = usuario.Identificacion
            tipoPago = objGestor.getPrecios(1)
            lblTipoPago.Text = tipoPago.Nombre.ToString()
            lblTotalPago.Text = tipoPago.Valor.ToString()
            CbxCantMeses.Enabled = False
            DtpFechaInicio.MaxDate = Date.Now
        Else
            DtpFechaFin.Enabled = False
            lblNombre.Text = usuario.PrimerNombre + " " + usuario.PrimerApellido
            lblIdentificacion.Text = usuario.Identificacion
            tipoPago = objGestor.getPrecios(2)
            lblTipoPago.Text = tipoPago.Nombre.ToString()
            lblTotalPago.Text = tipoPago.Valor.ToString()
            CbxCantMeses.Enabled = True
            DtpFechaInicio.MinDate = pagoUsuario.FechaFin
        End If
        precio = tipoPago.Valor
    End Sub


    Public Sub setUsusario(objUsuario As Usuario)
        usuario = objUsuario
    End Sub

    Private Sub CbxllenarCantmeses()
        CbxCantMeses.Items.Add("1 mes")
        CbxCantMeses.Items.Add("2 meses")
        CbxCantMeses.Items.Add("3 meses")
        CbxCantMeses.Items.Add("4 meses")
        CbxCantMeses.Items.Add("5 meses")
        CbxCantMeses.Items.Add("6 meses")
        CbxCantMeses.Items.Add("7 meses")
        CbxCantMeses.Items.Add("8 meses")
        CbxCantMeses.Items.Add("9 meses")
        CbxCantMeses.Items.Add("10 meses")
        CbxCantMeses.Items.Add("11 meses")
        CbxCantMeses.Items.Add("12 meses")
        CbxCantMeses.SelectedIndex = 0
    End Sub

    Private Sub CbxllenarFormapago()
        CbxFormaPago.Items.Add("Tarjeta")
        CbxFormaPago.Items.Add("Efectivo")
        CbxFormaPago.SelectedIndex = 0
    End Sub


#Region "Funcionalidad"
    Private Sub DtpFechaInicio_ValueChanged(sender As Object, e As EventArgs) Handles DtpFechaInicio.ValueChanged
        DtpFechaFin.Value = DtpFechaInicio.Value.AddMonths(1)
    End Sub

    Private Sub CbxCantMeses_SelectedIndexChanged(sender As Object, e As EventArgs) Handles CbxCantMeses.SelectedIndexChanged
        DtpFechaFin.Value = DtpFechaInicio.Value.AddMonths(CbxCantMeses.SelectedIndex + 1)
        lblTotalPago.Text = (precio * (CbxCantMeses.SelectedIndex + 1))
        precio = lblTotalPago.Text
    End Sub

    Private Sub txtDescuento_KeyPress(sender As Object, e As KeyPressEventArgs) Handles txtDescuento.KeyPress

        If Not IsNumeric(e.KeyChar) And e.KeyChar <> ControlChars.Back Then
            e.Handled = True
        End If
        Dim total As Integer = (precio * Val(txtDescuento.Text) / 100)
        lblTotalPago.Text = (precio - total)
        lblTotalPago.Refresh()
    End Sub

    Private Sub txtNumeroTarjeta_KeyPress(sender As Object, e As KeyPressEventArgs)
        If Not IsNumeric(e.KeyChar) And e.KeyChar <> ControlChars.Back Then
            e.Handled = True
        End If
    End Sub

    Private Sub txtCodigoSeguridad_KeyPress(sender As Object, e As KeyPressEventArgs) Handles txtCodigoSeguridad.KeyPress
        If Not IsNumeric(e.KeyChar) And e.KeyChar <> ControlChars.Back Then
            e.Handled = True
        End If
    End Sub

    Private Sub MsknumTarjeta_MouseClick(sender As Object, e As MouseEventArgs) Handles MsknumTarjeta.MouseClick
        MsknumTarjeta.Select(0, 0)
    End Sub

    Private Sub MskFechaVencimiento_MouseClick(sender As Object, e As MouseEventArgs) Handles MskFechaVencimiento.MouseClick
        MskFechaVencimiento.Select(0, 0)
    End Sub

    Private Sub CbxFormaPago_SelectedIndexChanged(sender As Object, e As EventArgs) Handles CbxFormaPago.SelectedIndexChanged

        If (CbxFormaPago.SelectedIndex = 1) Then
            txtNombreTarjeta.Enabled = False
            MsknumTarjeta.Enabled = False
            txtCodigoSeguridad.Enabled = False
            MskFechaVencimiento.Enabled = False
        Else
            txtNombreTarjeta.Enabled = True
            MsknumTarjeta.Enabled = True
            txtCodigoSeguridad.Enabled = True
            MskFechaVencimiento.Enabled = True
        End If

        lblCodigoSeguridad.Visible = False
        lblNumeroTarjeta.Visible = False
        lblFechaVencimiento.Visible = False
        lblNombreTrajeta.Visible = False

    End Sub

#End Region

    Private Sub btnRegistrarPago_Click(sender As Object, e As EventArgs) Handles btnRegistrarPago.Click

        Dim campoNombre As Int16 = 0
        Dim campoNumero As Int16 = 0
        Dim campocodigo As Int16 = 0
        Dim campofecha As Int16 = 0

        lblCodigoSeguridad.Visible = False
        lblNumeroTarjeta.Visible = False
        lblFechaVencimiento.Visible = False
        lblNombreTrajeta.Visible = False


        If (CbxFormaPago.SelectedIndex = 1) Then
            objGestor.RegistrarPagoEfectivo(usuario.Id, 1, CbxFormaPago.SelectedIndex + 1,
                                             DtpFechaInicio.Text, DtpFechaFin.Text, Val(lblTotalPago.Text))
            MsgBox(DtpFechaFin.Text)
            MJS()
        Else

            If (txtNombreTarjeta.Text.Length < 1) Then
                campoNombre = 1
                lblNombreTrajeta.Visible = True
            End If

            If MskFechaVencimiento.MaskFull = False Then
                campofecha = 1
                lblFechaVencimiento.Visible = True

            End If

            If MsknumTarjeta.MaskFull = False Then
                campoNumero = 1
                lblNumeroTarjeta.Visible = True
            End If

            If (txtCodigoSeguridad.Text.Length < 1) Then
                campocodigo = 1
                lblCodigoSeguridad.Visible = True
            End If
           
            If (campoNombre = 0 And campofecha = 0 And campoNumero = 0 And campocodigo = 0) Then
                objGestor.RegistrarPagoTarjeta(usuario.Id, tipoPago.Id, CbxFormaPago.SelectedIndex + 1,
                                    DtpFechaInicio.Text, DtpFechaFin.Text, Val(lblTotalPago.Text),
                                    txtNombreTarjeta.Text, MsknumTarjeta.Text, txtCodigoSeguridad.Text, MskFechaVencimiento.Text)
                MsgBox(DtpFechaFin.Text)
                MJS()
            End If

        End If
    End Sub

    Private Sub btnCancelar_Click(sender As Object, e As EventArgs)
        Dim frm As New FrmClientes
        Me.Controls.Add(frm)
    End Sub


    Private Sub MJS()

        Dim form As New frmRegistroExitoso 'crea una instancia del form 
        form.Dock = DockStyle.Fill
        frmTransparente.AgregarContenido(form)
        form.agregarLabels("el pago de " + tipoPago.Nombre + "se ha realizado .")
        frmTransparente.Show()
        frmSecundario.Width = Screen.PrimaryScreen.WorkingArea.Width
        frmSecundario.Height = Screen.PrimaryScreen.WorkingArea.Height - Screen.PrimaryScreen.WorkingArea.Height * (60 / 100)
        frmSecundario.Location = New Point(Screen.PrimaryScreen.WorkingArea.X, Screen.PrimaryScreen.WorkingArea.Height * (32 / 100))

    End Sub



End Class
